﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace QLNSClient
{
    public partial class uc_ThemHeso : UserControl
    {
        QLNSServiceReference.QLNSServiceClient sv = new QLNSServiceReference.QLNSServiceClient();
        
        public uc_ThemHeso()
        {
            InitializeComponent();
        }

        public void LoadData()
        {
            gv_dsThemHeso.DataSource = sv.getHSL();
            btn_Luu.Enabled = false;
            btn_Xoa.Enabled = false;
            btn_Sua.Enabled = false;

            txt_MaHeso.Enabled = false;
            lkEdit_MaBL.Enabled = false;
            lke_Loaingach.Enabled = false;

            gridView1.Columns[0].Caption = "Mã loại ngạch";
            gridView1.Columns[1].Caption = "Mã bậc lương";
            gridView1.Columns[2].Caption = "Hệ số lương";

            //load len lookupedit
            lkEdit_MaBL.Properties.DataSource = sv.getBL();
            lke_Loaingach.Properties.DataSource = sv.getLNG();
            
        }

        private void uc_ThemHeso_Load(object sender, EventArgs e)
        {
            LoadData();
        }


        string maloaingach = "";
        int mabl = 0;
        private void gv_dsThemHeso_Click(object sender, EventArgs e)
        {
            btn_Luu.Enabled = false;
            btn_Huy.Enabled = false;
            btn_Xoa.Enabled = true;
            btn_Sua.Enabled = true;

            txt_MaHeso.Enabled = false;
            lkEdit_MaBL.Enabled = false;
            lke_Loaingach.Enabled = false;
            try
            {
                lke_Loaingach.EditValue = gridView1.GetFocusedRowCellDisplayText(gridView1.Columns[0]);
                lkEdit_MaBL.EditValue = Int32.Parse(gridView1.GetFocusedRowCellDisplayText(gridView1.Columns[1]));
                txt_MaHeso.Text = gridView1.GetFocusedRowCellDisplayText(gridView1.Columns[2]);
                maloaingach = gridView1.GetFocusedRowCellDisplayText(gridView1.Columns[0]);
                mabl = Int32.Parse(gridView1.GetFocusedRowCellDisplayText(gridView1.Columns[1]));
            }
            catch { }
            
        }

        

        private void btn_Them_Click(object sender, EventArgs e)
        {
            btn_Luu.Enabled = true;
            btn_Xoa.Enabled = false;
            btn_Sua.Enabled = false;

            txt_MaHeso.Enabled = true;
            lkEdit_MaBL.Enabled = true;
            lke_Loaingach.Enabled = true;

            txt_MaHeso.Text = "";
            lkEdit_MaBL.EditValue = null;
            lke_Loaingach.EditValue = "";
      
        }

        private void btn_Xoa_Click(object sender, EventArgs e)
        {
            DialogResult dr = MessageBox.Show("Bạn có chắc muốn xóa dữ liệu này?!", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
            if (dr == DialogResult.OK)
            {
                float a = float.Parse(txt_MaHeso.Text);
                QLNSServiceReference.HESO_LUONG hsl = new QLNSServiceReference.HESO_LUONG();
                hsl.Ma_HS_Luong = a;
                sv.deleteHSL(hsl);
                LoadData();
                MessageBox.Show("Xóa thành công!");
            }
        }


        int demsua = 0;
        private void btn_Sua_Click(object sender, EventArgs e)
        {
            demsua = 1;
            
            btn_Luu.Enabled = true;
            lkEdit_MaBL.Enabled = true;
            lke_Loaingach.Enabled = true;
            
        
        }

        private void btn_Luu_Click(object sender, EventArgs e)
        {
            string tempLoaiNgach = "";
            if (lke_Loaingach.EditValue.ToString() == "")
            {
                tempLoaiNgach = null;
                MessageBox.Show("Bạn chưa chọn loại ngạch!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                lke_Loaingach.Focus();
            }
            else
            {
                tempLoaiNgach = lke_Loaingach.EditValue.ToString();
            }
            string tempMaBL = "";
            if (lkEdit_MaBL.EditValue==null)
            {
                tempMaBL = null;
                MessageBox.Show("Bạn chưa chọn bậc!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                lkEdit_MaBL.Focus();
            }
            else
            {
                tempMaBL = lkEdit_MaBL.EditValue.ToString();
            }

            float a;
            if (txt_MaHeso.Text == "")
            {
                a = 0;
            }
            else
            {
                a = float.Parse(txt_MaHeso.Text);
            }
            if (tempLoaiNgach != null && tempMaBL != null)
            {
                QLNSServiceReference.HESO_LUONG hsl = new QLNSServiceReference.HESO_LUONG();
                hsl.Ma_HS_Luong = a;
                hsl.Ma_BL = Int32.Parse(tempMaBL);
                hsl.Ma_Loai_Ngach = tempLoaiNgach;

                if (demsua == 1)
                {
                    DialogResult dr = MessageBox.Show("Bạn có chắc muốn cập nhật lại thông tin!", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
                    if (dr == DialogResult.OK)
                    {
                        sv.updateHSL(hsl);
                        demsua = 0;
                        MessageBox.Show("Cập nhật thông tin thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                else
                {
                    int kq;
                    kq = sv.addHSL(hsl);
                    if (kq != -1)
                    {
                        MessageBox.Show("Thêm hệ số lương cho '"+lke_Loaingach.Text+"' bậc '"+lkEdit_MaBL.Text+"' thành công!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        LoadData();
                    }
                    else
                    {
                        MessageBox.Show("Hệ số lương '"+txt_MaHeso.Text+"' bậc '"+lkEdit_MaBL.Text+"' của ngạch '"+lke_Loaingach.Text+"' đã tồn tại! Vui lòng xem lại!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
            }
            
        }

        private void cmb_MaBL_SelectedIndexChanged(object sender, EventArgs e)
        {
            //cmb_MaBL.Properties.Items.Add(sv.getMaBL());
            
        }

        private void lkEdit_MaBL_EditValueChanged(object sender, EventArgs e)
        {
            //QLNSServiceReference.NGACH ng=new QLNSServiceReference.NGACH();
            //lkEdit_MaBL.Properties.DataSource = sv.getMaBL();
            //lkEdit_MaBL.Properties.DisplayMember = ng.TenNgach;
            //lkEdit_MaBL.Properties.ValueMember = ng.Ma_Ngach;
            //lkEdit_MaBL.EditValue = sv.getMaBL();
        }

        private void btn_themmoiBL_Click(object sender, EventArgs e)
        {
            
        }

        private void btn_Add_Click(object sender, EventArgs e)
        {
            Frm_BACLUONG frm = new Frm_BACLUONG();
            frm.Show();
            lkEdit_MaBL.Properties.DataSource = sv.getBL();
        }

        private void lkEdit_MaBL_EditValueChanged_1(object sender, EventArgs e)
        {
            
        }

        private void btn_Huy_Click(object sender, EventArgs e)
        {
            demsua = 0;

            btn_Luu.Enabled = false;
            btn_Huy.Enabled = false;
            btn_Them.Enabled = true;
            btn_Xoa.Enabled = false;
            btn_Sua.Enabled = false;

            txt_MaHeso.Enabled = false;
        }

        
    }
}
